From: Florian Müllner Date: Thu, 19 May 2016 16:22:02 +0000 (+0200) Subject: network: Always show primary icon when connected X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~647 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b6cd548186ede4f42d793098b4984842fa6cc3ab;p=gnome-shell.git network: Always show primary icon when connected The top bar's network menu only supports a subset of device types supported by NetworkManager. While not having lesser used options in the menu itself is perfectly reasonable, not showing any network icon at all in the top bar when the system is fully connected is weird. https://bugzilla.gnome.org/show_bug.cgi?id=773890 --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index c3af481a6..2c6d9d899 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -2084,13 +2084,24 @@ const NMApplet = new Lang.Class({ }, _updateIcon: function() { - if (!this._client.networking_enabled || !this._mainConnection) { + if (!this._client.networking_enabled) { this._primaryIndicator.visible = false; } else { - let dev = this._mainConnection._primaryDevice; - this._primaryIndicator.visible = (dev != null); - if (dev) + let dev = null; + if (this._mainConnection) + dev = this._mainConnection._primaryDevice; + + let state = this._client.get_state(); + let connected = state == NetworkManager.State.CONNECTED_GLOBAL; + this._primaryIndicator.visible = (dev != null) || connected; + if (dev) { this._primaryIndicator.icon_name = dev.getIndicatorIcon(); + } else if (connected) { + if (this._client.connectivity == NetworkManager.ConnectivityState.FULL) + this._primaryIndicator.icon_name = 'network-wired-symbolic'; + else + this._primaryIndicator.icon_name = 'network-wired-no-route-symbolic'; + } } this._vpnIndicator.icon_name = this._vpnSection.getIndicatorIcon();